package vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

import vwg.na.vwm.rh.motorsdk.modelo.procesos.DevEventoAdministracion;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.IEntidadGenerica;

@Entity
@Table(name = "dev_llid_evento")
public class DevEvento implements IEntidadGenerica, Serializable  {

	private static final long serialVersionUID = -5351387927611981622L;
	
	private Long registroId;
	private String titulo;
	private Integer personaCreador;
	private Calendar fechaCreacion;
	private String tipoMovimiento;
	private String tipo;
	private String nombre;
	
	private List<DevEventoAdministracion> devEventoAdministracion;
	
	public DevEvento() {
		devEventoAdministracion = new ArrayList<DevEventoAdministracion>();
	}
	
	
	@Override
	public void setRegistroId(Long registroId) {
		this.registroId = registroId;
	}
	@Override
	@Column
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public Long getRegistroId() {
		return registroId;
	}
	@Override
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	@Override
	@Column
	public String getTitulo() {		
		return titulo;
	}
	@Override
	public void setPersonaCreador(Integer personaCreador) {
		this.personaCreador = personaCreador;		
	}
	@Override
	@Column
	public Integer getPersonaCreador() {		
		return personaCreador;
	}
	@Override
	public void setFechaCreacion(Calendar fechaCreacion) {
		this.fechaCreacion = fechaCreacion;		
	}
	@Override
	@Column
	public Calendar getFechaCreacion() {		
		return fechaCreacion;
	}
	@Override
	public void setTipoMovimiento(String tipoMovimiento) {
		this.tipoMovimiento = tipoMovimiento;		
	}
	@Override
	@Column
	public String getTipoMovimiento() {		
		return tipoMovimiento;
	}

	@Override
	public void setPersonaAplica(Integer personaAplica) {
		
	}
	@Transient
	@Override
	public Integer getPersonaAplica() {
		return null;
	}
	@Override
	public void setComentario(String comentario) {
		
	}
	@Transient
	@Override
	public String getComentario() {
		return null;
	}
	@Override
	public void setEstado(String estado) {
		
	}
	@Transient
	@Override
	public String getEstado() {
		return null;
	}
	
	@Column
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	@Column
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	@LazyCollection(LazyCollectionOption.FALSE)
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "evento")
	public List<DevEventoAdministracion> getLlidEventoAdministracion() {
		return devEventoAdministracion;
	}
	public void setLlidEventoAdministracion(
			List<DevEventoAdministracion> devEventoAdministracion) {
		this.devEventoAdministracion = devEventoAdministracion;
	}


	@Transient
	@Override
	public Long getFolio() {
		return null;
	}
	
	
	@Override	
	public void setFolio(Long folio) {
		
	}

	@Transient
	@Override
	public Integer getActividadActual() {
		return null;
	}


	@Override
	public void setActividadActual(Integer actividadActual) {
		
	}

	@Transient
	@Override
	public Calendar getFechaActividadActual() {
		return null;
	}


	@Override
	public void setFechaActividadActual(Calendar fechaActividadActual) {
		
	}


	@Override
	@Transient
	public Integer getActividadInicial() {
		return null;
	}


	@Override
	public void setActividadInicial(Integer actividadInicial) {
		
	}
}
